package com.feeyar.jswfsocket.core {
  import flash.utils.Endian;
  import flash.utils.ByteArray;
  import flash.events.SecurityErrorEvent;
  import flash.events.ProgressEvent;
  import flash.events.IOErrorEvent;
  import flash.events.Event;
  import flash.net.Socket;
  /**
   * @author Wangbin
   */
  public class JSocket {
  	//==========================================================================
  	//  Constructor
  	//==========================================================================
  	public function JSocket():void {
  		iniSocket();
  	}
  	//==========================================================================
  	//  Variables
  	//==========================================================================
  	private var socket:Socket;
  	//==========================================================================
  	//  Properties
  	//==========================================================================
  	//----------------------------------
  	//  host
  	//----------------------------------
  	private var _host:String;
  	public function get host():String {
  	  return _host;
  	}
  	//----------------------------------
  	//  port
  	//----------------------------------
  	private var _port:int;
  	public function get port():int {
  	  return _port;
  	}
  	//==========================================================================
  	//  Public methods
  	//==========================================================================
  	public function connect(host:String,port:int):void {
      _host = host;
      _port = port;
      socket.connect(_host, _port);
    }
    public function sendData(data:*):void {
      socket.writeUTF(data+"\n");
      socket.flush();
    }
  	//==========================================================================
  	//  Private methods
  	//==========================================================================
  	private function iniSocket():void {
      socket = new Socket();
      
      socket.addEventListener(Event.CLOSE, onCloseHandler);
      socket.addEventListener(Event.CONNECT, onConnectHandler);
      socket.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorHandler);
      socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketDataHandler);
      socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityHandler);
    }
    private function parseData(data:*):ByteArray {
    	var byteArray:ByteArray = new ByteArray();
      byteArray.endian = Endian.LITTLE_ENDIAN;
      
//      if(){
//      }
      
      return byteArray;
    }
    //------------------------------------
    //  Events
    //------------------------------------
    private function onSecurityHandler(event:SecurityErrorEvent):void {
    }
    private function onSocketDataHandler(event:ProgressEvent):void {
    }
    private function onIOErrorHandler(event:IOErrorEvent):void {
    }
    private function onConnectHandler(event:Event):void {
    }
    private function onCloseHandler(event:Event):void {
    }
  }
}
